package fr.jhaccoun.demenager_eco.utilisateur;

import java.math.BigDecimal;

import javax.sql.DataSource;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

import com.github.springtestdbunit.MyDbUnitRule;
import com.github.springtestdbunit.annotation.DatabaseSetup;
import com.github.springtestdbunit.annotation.DatabaseTearDown;
import com.github.springtestdbunit.annotation.ExpectedDatabase;
import com.github.springtestdbunit.assertion.DatabaseAssertionMode;

import fr.jhaccoun.demenager_eco.produit.Categorie;
import fr.jhaccoun.demenager_eco.produit.EtatUsure;
import fr.jhaccoun.demenager_eco.produit.Produit;
import fr.jhaccoun.demenager_eco.produit.Taille;

//defaultRollback doit etre a false sinon l'ajout ne sera pas fait en base et donc impossible de vérifier les données en base par DBunit

//@ContextConfiguration(locations = { "classpath:applicationContextTest.xml" })
//@RunWith(SpringJUnit4ClassRunner.class)
//@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
//@Transactional 
//@DatabaseTearDown(value = {"insert_utilisateurs.xml","insert_produit_etat_usure.xml","insert_produit_categorie.xml"}, type = com.github.springtestdbunit.annotation.DatabaseOperation.DELETE_ALL) 
public class OldDBUnitITUtilisateurServiceImpl {
//	 
//	@Autowired
//	private UtilisateurService utilisateurService;
// 
//	@Rule
//	public MyDbUnitRule dbUnit = new MyDbUnitRule();
//  
//	
//	//Utilisé par le framework de test DBunit
//	@SuppressWarnings("unused")
//	@Autowired
//	private DataSource dataSource;
// 
//  
//	@Test 
//	@ExpectedDatabase(assertionMode=DatabaseAssertionMode.NON_STRICT,value="expected_utilisateurs.xml")
//	@DatabaseSetup({"insert_produit_categorie.xml","insert_produit_etat_usure.xml"}) 
//	public void testAddUtilisateur_NouvelUtilisateur() throws UserAlreadyExistsException {
// 
//		EtatUsure etatUsure = new EtatUsure();
//		etatUsure.setId(0L);
//		
//		Categorie cat = new Categorie();
//		cat.setId(0L);
//		
//		Produit p = new Produit();
//		p.setReference("HUD-VFFF-31312");
//		p.setDescription("congelateur derniere game avec retro eclairage puis ecran lumineux");
//		p.setIntitule("congelateur UHV 157894 PC");
//		p.setGaranti(true);
//		p.setFacture(false);
//		p.setMarque("BRANDT");
//		p.setPoids(76);
//		p.setPrixVente(new BigDecimal(125.54));
//		p.setTaille(new Taille(50,60,120));
//		p.setCategorie(cat);
//		p.setEtatUsure(etatUsure);
//		
//		Utilisateur user = new Utilisateur(); 
//		user.setNom("merlin");
//		user.setPrenom("arthur");
//		user.setEmail("nouveluser@gmail.com");
//		user.setPassword("mdp");
//		
//		user.addProduit(p);
//		
//		utilisateurService.addUtilisateur(user); 
//	}
//	
//	@Test(expected = UserAlreadyExistsException.class)
//	@DatabaseSetup("insert_utilisateurs.xml") 
//	public void testAddUtilisateur_Failed_UtilisateurExistant() throws UserAlreadyExistsException { 
//		Utilisateur user = new Utilisateur(); 
//		user.setNom("merlin");
//		user.setPrenom("arthur");
//		user.setEmail("userexistant@gmail.com");
//		user.setPassword("mdp");
//		 
//		utilisateurService.addUtilisateur(user); 		 
//	}
//	
 
}
